package com.xy.webadmin.app.vo.userEmail;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;
import java.util.Map;

/**
 * 用户邮件信息VO视图对象。
 *
 * @author xiaoyue
 * @date 2025-05-13
 */
@Schema(description = "用户邮件信息VO视图对象")
@Data
public class UserEmailReceivedInfoVo {

    /**
     * 主键。
     */
    @Schema(description = "主键")
    private Long id;

    /**
     * 邮件ID。
     */
    @Schema(description = "邮件ID")
    private String emailId;

    /**
     * 平台。
     */
    @Schema(description = "平台")
    private Integer platform;

    /**
     * 发件人邮箱。
     */
    @Schema(description = "发件人邮箱")
    private String sender;

    /**
     * 收件人邮箱（多地址用分号分隔）。
     */
    @Schema(description = "收件人邮箱（多地址用分号分隔）")
    private String receiver;

    /**
     * 邮件主题。
     */
    @Schema(description = "邮件主题")
    private String subject;

    /**
     * 正文。
     */
    @Schema(description = "正文")
    private String content;

    /**
     * 关键词。
     */
    @Schema(description = "关键词")
    private String keyword;

    /**
     * 是否为HTML格式。
     */
    @Schema(description = "是否为HTML格式")
    private Integer isHtml;

    /**
     * 邮件发送时间。
     */
    @Schema(description = "邮件发送时间")
    private Date sendTime;

    /**
     * 服务器收到邮件时间。
     */
    @Schema(description = "服务器收到邮件时间")
    private Date receiveTime;

    /**
     * 处理状态。
     */
    @Schema(description = "处理状态")
    private String status;

    /**
     * 优先级。
     */
    @Schema(description = "优先级")
    private Integer priority;

    /**
     * 是否有附件。
     */
    @Schema(description = "是否有附件")
    private Integer hasAttachment;

    /**
     * 附件url。
     */
    @Schema(description = "附件url")
    private String attachmentUrl;

    /**
     * 系统用户。
     */
    @Schema(description = "系统用户")
    private Long sysUserId;

    /**
     * 公司。
     */
    @Schema(description = "公司")
    private Long companyId;

    /**
     * 创建时间。
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 更新时间。
     */
    @Schema(description = "更新时间")
    private Date updateTime;

    /**
     * 创建用户ID。
     */
    @Schema(description = "创建用户ID")
    private Long createUserId;

    /**
     * 更新用户ID。
     */
    @Schema(description = "更新用户ID")
    private Long updateUserId;

    /**
     * sysUserId 字典关联数据。
     */
    @Schema(description = "sysUserId 字典关联数据")
    private Map<String, Object> sysUserIdDictMap;

    /**
     * companyId 字典关联数据。
     */
    @Schema(description = "companyId 字典关联数据")
    private Map<String, Object> companyIdDictMap;

    /**
     * platform 常量字典关联数据。
     */
    @Schema(description = "platform 常量字典关联数据")
    private Map<String, Object> platformDictMap;

    /**
     * isHtml 常量字典关联数据。
     */
    @Schema(description = "isHtml 常量字典关联数据")
    private Map<String, Object> isHtmlDictMap;

    /**
     * hasAttachment 常量字典关联数据。
     */
    @Schema(description = "hasAttachment 常量字典关联数据")
    private Map<String, Object> hasAttachmentDictMap;
}
